Solid-state based storage devices are becoming increasingly popular due to their low power consumption, ruggedness and high input-output (IO) performance compared to conventional hard disc drives. Most current solid-state storage devices are based on NAND-flash memory chips.
A typical configuration of a Flash-based storage system comprises at least one Flash memory controller and one or more Flash memory packages connected to the Flash memory controller through a serial, multiplexed Flash memory interface. Each Flash memory package is typically composed of one or more dies, each of which typically offers a capacity of 2 GB or more. Flash memory packages are accessed by sending multi-step commands over the multiplexed Flash memory interface. The Flash memory interface is commonly also referred to as a channel.
In an example configuration, each die within a package contains 8192 blocks. Each block in turn consists of 64 pages of 4 KB each. In addition to data, each page includes a 128 Byte region to store metadata or error detection and correction information.
Data reads and writes are typically done at page granularity. A typical read operation takes 25 μs to read a page from the cells into a 4 KB data buffer attached to each die. In addition to that, the data is transmitted from the data buffer to the Flash memory controller through the Flash memory interface. The Flash memory interface transfers data at typically 25 ns per Byte (according to ONFI-1 standard), or roughly 100 μs per page. During the transfer of the data from the Flash memory package to the Flash memory controller, the Flash memory interface is occupied and not available for competing data transfers.
A write operation takes the same time to transfer data from the Flash memory controller through the Flash memory interface to the data buffer inside the die. Afterwards it takes an additional 200 μs for the data to be written out to the individual memory cells of the die.